#!/usr/bin/env python3
# Created by han on 2016/6/17
import re,sys,os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from module import frist


def start():
    """
    计算器主函数
    :return:
    """
    while True:
        retain = input("小数点后保留位数或【b】退出： ")                  #小数点后保留位数
        if retain == "b":
            break
        if retain.isdigit():                                            #小数点后保留位数必须是数字
            user_input = input("请您输入表达式： ")
            if user_input:
                if " " in user_input:                                   #如果表达式中有空格
                    user_list = re.split(" ",user_input)                #以空格作为分隔并去掉
                    user_input = "".join(user_list)                     #将生成的列表join成字符串
                ret = frist.frist(user_input)                           #将字符串进行脱括号处理
                over = frist.last(ret)                                  #将托完括号的表达式进行最后的运算
                print("\n最终结果：{num:*^60.{d}}\n".format(num=over, d=retain))
            else:
                print("\033[31;33m 您的输入有误请重新重新输入\033[33;0m".center(40, ' '))
        else:
            print("\033[31;33m 请您输入数字 \033[33;0m".center(40, ' '))


if __name__ == '__main__':
    start()